package com.chalmers.foa.gamemodel.gameobjects;

import android.graphics.Bitmap;
import android.graphics.Point;

import com.chalmers.foa.gamemodel.gameobjects.hazards.impl.Spike;
import com.chalmers.foa.gamemodel.gameobjects.obstacles.impl.*;
import com.chalmers.foa.gamemodel.gameobjects.other.impl.*;
import com.chalmers.foa.gamemodel.gameobjects.switches.impl.*;

public class GameObjectFactory {

	public enum ObjectType {
        Player,
        Enemy,
        Door,
        DoorIntent,
        Key,
        Scenery,
        Stationary,
        Gravitable,
        ReverseGravitable,
        Tiltable,
        Pushable,
        Lever,
        Push,
        Spike
    }
	
	public static IGameObject createBitmapObject(ObjectType _t,Bitmap _b,Point _p,int _l,int _a){
		switch(_t){
		case Player:
			return new PlayerObject(_p,_b,_l,_a);
		case Door:
			return new Door(_p,_b,_l,_a);
		case DoorIntent:
			return new DoorIntent(_p,_b,_l,_a);
		case Key:
			return new Key(_p,_b,_l,_a);
		case Enemy:
			return new Enemy(_p,_b,_l,_a);
		case Scenery:
			return new Scenery(_p, _b,_l,_a);
		case Lever:
			return new LeverSwitch(_p, _b,_l,_a);
		case Push:
			return new PushSwitch(_p, _b,_l,_a);
		case Spike:
			return new Spike(_p, _b,_l,_a);
		case Stationary:
			return new StationaryObstacle(_p, _b,_l,_a);
		case Gravitable:
			return new GravitableObstacle(_p, _b,_l,_a);
		case ReverseGravitable:
			return new ReverseGravitableObstacle(_p, _b,_l,_a);
		case Tiltable:
			return new TiltableObject(_p, _b,_l,_a);
		}
		return null;
	}
}
